Continue work on cursor movement in continued lines.
authorEli Zaretskii <eliz@gnu.org>
Sat, 13 Mar 2010 16:38:01 +0000 (11:38 -0500)
committerEli Zaretskii <eliz@gnu.org>
Sat, 13 Mar 2010 16:38:01 +0000 (11:38 -0500)
commitadeef80de8d3f3f8b34b6ad8ad6c070769ef1610
treecc22cb77b0e13f05431b974e0ce049928441682a
parent91c4407385b49ca2968e7a19b4f4dd7efbf4de8a
Continue work on cursor movement in continued lines.
 xdisp.c (try_cursor_movement): Give up if rows are
 bidi-reordered and point moved backwards.  Examine all the
 candidate rows that occlude point, to return the best match.
 (row_containing_pos): With bidi-reordered rows, don't return the
 first one that occludes point; rather, examine all candidates and
 return the best match, with he glyph that's closest to point.
 (display_line): When looking for min position, don't consider
 negative values of glyph->charpos.  (Fixes a crash with "C-x 3" at
 ZV.)  Record the position after EOL in it->eol_pos, and use it to
 set end_pos of the last row produced for a continued line.  Fix
 the condition for passing candidate rows to set_cursor_from_row:
 check ends_at_zv_p flag of the best candidate row, not of the
 current row.
 dispextern.h (struct it): New member eol_pos.
 .gdbinit (prowlims): Display the ends_at_zv_p flag.
src/.gdbinit
src/ChangeLog.bidi
src/dispextern.h
src/xdisp.c